<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateAdminLogTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('admin_log', function (Blueprint $table) {
            $table->increments('id')->comment('自增ID');
            $table->string('type', 20)->default('')->comment('日志类型：basic操作日志、 login登录日志');
            $table->string('content', 200)->default('')->comment('操作内容');
            $table->string('request_uri', 500)->default('')->comment('请求接口');
            $table->string('request_method', 50)->default('')->comment('请求方法');
            $table->string('request_parameters', 5000)->default('')->comment('请求参数');
            $table->string('request_ip', 100)->default('')->comment('请求ip');
            $table->string('request_user_agent')->default('')->comment('客户端信息');
            $table->string('request_browser', 50)->default('')->comment('客户端浏览器');
            $table->string('request_browser_version', 50)->default('')->comment('客户端浏览器版本');
            $table->string('request_platform', 50)->default('')->comment('客户端设备操作系统');
            $table->string('request_platform_version', 50)->default('')->comment('客户端设备系统版本');
            $table->string('action')->default('')->comment('行为（控制器+方法）');
            $table->string('action_controller', 200)->default('')->comment('所属模块（控制器类）');
            $table->string('action_controller_name', 200)->default('')->comment('模块名称（控制器中文名称）');
            $table->string('action_method', 30)->default('')->comment('操作类型（控制器类的方法）');
            $table->string('action_method_name', 30)->default('')->comment('操作类型的名称');
            $table->string('route_as_name', 50)->default('')->comment('路由别名');
            $table->text('response')->nullable()->comment('响应结果');
            $table->string('exception', 2000)->default('')->comment('异常信息');
            $table->unsignedTinyInteger('status')->default('1')->comment('操作状态：1成功 0失败');
            $table->string('admin_username', 100)->default('')->comment('管理员用户名/登录用户名');
            $table->unsignedInteger('created_user_id')->default('0')->comment('（操作人员）管理员ID');
            $table->timestamp('created_at')->nullable()->comment('创建时间');
            $table->softDeletes()->comment('删除时间');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('admin_log');
    }
}
